<feed xmlns='http://www.w3.org/2005/Atom'>
<title>coinos-ui.git/src/routes/(app)/invoice/[id], branch master</title>
<subtitle>coinos ui — legacy coinos.io web app (SvelteKit)</subtitle>
<id>https://git.coinos.io/coinos-ui.git/atom?h=master</id>
<link rel='self' href='https://git.coinos.io/coinos-ui.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/'/>
<updated>2026-09-22T18:27:15Z</updated>
<entry>
<title>invoice: a reusable bolt12 offer has no terminal paid state</title>
<updated>2026-09-22T18:27:15Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-09-22T18:23:19Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=802eea628fb77fed305de555995cf323174b0394'/>
<id>urn:sha1:802eea628fb77fed305de555995cf323174b0394</id>
<content type='text'>
A bolt12 offer is a standing payment code. CLN derives the same offer_id
from the same (amount, description), so re-creating one hands back the
original record, whose `received` has accumulated over the offer's whole
lifetime. The invoice layout read that as "this invoice was paid" and
redirected to the success screen, so reopening a long-lived offer never
showed the QR and left no way to copy the lno.

Treat a payment as celebratory only when it arrives while the page is
open: the socket handler now passes the amount of that payment as
`?paid=&lt;amount&gt;`, and the layout uses it in place of the lifetime total
for reusable offers. Single-use invoices keep the existing logic, so a
partly-paid invoice still stays on the QR rather than celebrating early.

The success screen showed lifetime `received` for the same reason, which
misreported a single payment to a long-lived offer; it now renders the
amount the socket reported, which is already net of tip.

Co-Authored-By: Claude Opus 5 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>receive/invoice: build POST body from snapshot, don't mutate $derived</title>
<updated>2026-06-19T07:09:21Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2026-06-19T07:09:21Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=2f0e6d052efbca7f695dda942ab7da6221da3aa9'/>
<id>urn:sha1:2f0e6d052efbca7f695dda942ab7da6221da3aa9</id>
<content type='text'>
The merchant receive and invoice pages mutated the $derived `invoice`
proxy (setType/setAmount/setMemo) then POSTed it. Mutating a $derived
and JSON.stringify-ing it serializes unreliably, so a stale type
(on-chain when lightning was expected) and a stale/10x-shifted amount
could leak from a prior interaction into POST /invoice (funk POS bug).

Build the body as { ...$state.snapshot(invoice), ...changes } so the
intended type/amount/address_type reliably win; update() takes the
plain body. Front-end only.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>redirect to paid route</title>
<updated>2025-09-09T19:38:40Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-09T19:38:40Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=a8d18ab66a8beb203b8ff0a056810000a3e069ea'/>
<id>urn:sha1:a8d18ab66a8beb203b8ff0a056810000a3e069ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>check for user in invoice route</title>
<updated>2025-09-09T16:18:11Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-09-09T16:18:11Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=76b781b2870e793cdeae85088b2d70e6a271e6a4'/>
<id>urn:sha1:76b781b2870e793cdeae85088b2d70e6a271e6a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix autopay with tip logic</title>
<updated>2025-08-27T04:53:38Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-08-27T04:53:38Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=74f8a634073fc04be9983f0e0c39ad46b8df5b67'/>
<id>urn:sha1:74f8a634073fc04be9983f0e0c39ad46b8df5b67</id>
<content type='text'>
</content>
</entry>
<entry>
<title>set tip</title>
<updated>2025-08-21T06:20:02Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-08-21T06:20:02Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=eb66f787b48a2a52ece890e356fd022380f64c2e'/>
<id>urn:sha1:eb66f787b48a2a52ece890e356fd022380f64c2e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>handle null tips</title>
<updated>2025-07-20T05:56:05Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-07-20T05:56:05Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=476418f9711ac91760a9ca279a6e671d88e70fc3'/>
<id>urn:sha1:476418f9711ac91760a9ca279a6e671d88e70fc3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>prompt for tip for auto pays</title>
<updated>2025-07-20T01:07:57Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-07-20T00:59:56Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=d87ecae6ee46af4790e1f57cd5d82a35ab29e646'/>
<id>urn:sha1:d87ecae6ee46af4790e1f57cd5d82a35ab29e646</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix pin issue</title>
<updated>2025-07-16T07:05:35Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-07-16T07:05:35Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=25ac9d65b346dafb3b1c733cce44feb1c3564aa8'/>
<id>urn:sha1:25ac9d65b346dafb3b1c733cce44feb1c3564aa8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>user onboarding</title>
<updated>2025-07-10T19:36:50Z</updated>
<author>
<name>Adam Soltys</name>
<email>adam@coinos.io</email>
</author>
<published>2025-07-10T19:36:50Z</published>
<link rel='alternate' type='text/html' href='https://git.coinos.io/coinos-ui.git/commit/?id=5b458624745c7ea80d1e63c9a6ef77075763ff5f'/>
<id>urn:sha1:5b458624745c7ea80d1e63c9a6ef77075763ff5f</id>
<content type='text'>
</content>
</entry>
</feed>
